As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
In this regard, RAID, an acronym for Redundant Array of Independent Disks, is a technology that provides increased storage functions and increased reliability through redundancy, and as such may be beneficially employed in information handling systems. Redundancy in a RAID device may be achieved by combining multiple disk drive components, which may include one or more disks of different type, size, or classification, into a logical unit, where data is distributed across the drives in one of several ways called “RAID levels.” The data distribution determines the RAID type, e.g., RAID 0, RAID 5, RAID 10, etc
RAID includes data storage schemes that can divide and replicate data among multiple physical disk drives. The physical disks are said to be in a RAID array, which is addressed by the operating system as one single disk. Many different schemes or architectures of RAID devices are known to those having ordinary skill in the art. Each different architecture or scheme may provide a different balance among various goals to be achieved in storing data, which include, but are not limited to, increased data reliability and increased input/output (hereinafter “I/O”) performance. Furthermore, RAID devices may be grouped into one or more “tiers,” where data of higher importance may be stored in higher performance RAID tiers, and data of lower importance may be stored in lower performance RAID tiers.
It is also known in the art to create a “page pool” of storage derived from one or more virtual volumes of storage, wherein the virtual volumes comprise one or more RAID devices of the same or different type. U.S. Pat. No. 7,398,418, the contents of which are hereby incorporated by reference in their entirety, discloses an example data storage system that employs a page pool of virtual volumes and dynamically allocates data space based on the page pool. As shown by way of example in FIG. 1, a disk storage system 110 may include a page pool of storage 112, i.e., a pool of data storage including a list of data storage space that is free to store data. The page pool 112 may maintain a free list of storage space from a plurality of RAID devices 114 and may manage read/write assignments based on a user's requests. User requested data storage volumes 116 may be sent to the page pool 112 to get storage space. Each volume can request storage space from the same or different classes of storage devices with same or different RAID levels, e.g. RAID 10, RAID 5, RAID 0, etc.
As further illustrated in FIG. 2, a matrix of virtual volumes or blocks 204 may be provided and associated with physical disks. The matrix of virtual volumes or blocks 204 may be monitored/controlled dynamically by one or more disk storage system controllers 202. The size of each virtual volume 204 can be predefined, and the location of data for each virtual volume 204 may be default as null. Each of the virtual volumes 204 may be null until data is allocated. The data can be allocated in any grid of the matrix or “pool” (e.g., a “dot” in the grid once data is allocated in the grid). Once the data is deleted, the virtual volume 204 may again be available and indicated to be “null”. Thus, extra and sometimes expensive data storage devices, e.g. RAID devices, can be acquired later in time on a need basis, or removed once no longer needed. In this manner, a page pool of virtual volumes mapped to one or more RAID devices may provide a highly flexible and efficient data storage system.
Accordingly, such a RAID-based data storage system may be capable of employing RAID techniques across any number of virtual volumes disks. The remaining storage space is freely available. Through monitoring storage space and determining occupancy rate of the storage space of the RAID subsystem, a user does not have to acquire a large sum of drives that are expensive but have no use at the time of purchase. Thus, adding drives when they are actually needed to satisfy the increasing demand of the storage space significantly reduces the overall cost of the disk drives, and removing them when no longer needed frees up valuable storage space. The efficiency of the use of the drives may also be substantially improved.
Data allocation in existing RAID architectures, such as that disclosed in U.S. Pat. No. 7,398,418, may be determined by a scoring system that assigns one or more scores to each RAID device in the data storage system, and data is allocated to a particular RAID device based on the priority of the data (e.g., how often it is accessed) and/or by the scores assigned to the RAID devices. For example, in one example architecture, higher priority data is assigned to higher scoring RAID devices, and lower priority data is assigned to lower scoring RAID devices. Further examples of scoring and data allocation are disclosed in U.S. Pat. No. 7,398,418.
In balanced RAID configurations, where each RAID device is “wide-striped” across all disks in the data storage system, the disk being of the same size and type, existing data allocation and storage methods provide an accurate and efficient means for storing data in the most appropriate RAID device for such data. However, it is often the case that a data storage system includes disks that are not all of the same type or the same size, and thus it is not possible to wide-stripe each RAID device across all disks in the system, resulting in an “unbalanced” RAID configuration. Unbalanced RAID configurations may also result from the addition or removal of disks from a data storage system, where RAID devices are not re-striped after such addition or removal. Due to this unbalanced configuration, existing data allocation and storage methods may not be able to determine an accurate relative score for each RAID device, or allocate data in the most efficient manner to a particular RAID device. Lacking in the art are systems and methods that account for the unbalanced nature of a RAID-based data storage system in assigning scores to the respective RAID devices thereof and in allocating data for storage thereto.